
class Triangle:
    def __init__(self,a,b,c):
        if a+b>c and a+c>b and c+b>a:
            self.__a=a
            self.__b=b
            self.__c=c
            #属性私有
        else:
            print("三边有错误，无法组成一个三角形")
    def zhouzhang(self):
        return self.__a+self.__b+self.__c
    def area(self):
        p=self.zhouzhang()/2
        return ((p-self.__a)*(p-self.__b)*(p-self.__c)*p)**0.5
    #私有方法
    def __p(self):
        print("这是一个三角形的私有方法")
    #修改边a的方法
    def changeA(self,a):
        if a+self.__b>self.__c and a+self.__c>self.__b and self.__b+self.__c>a:
            self.__a=a
            return
        print(f"{a}不合适，无法组成三角形，修改失败")

t2=Triangle(3,4,5)
print("这个三格形面积是 ",t2.area())
if __name__=="__main__":
    t=Triangle(3,4,5)
    #阻止如下的三行运行
    # t.b=-20
    # t.c=-30
    # t.a=-15
    t.__a=-20#没错，没有作用
    #t.__p() 报错
    #print("其中一条边长是:",t.__b) 报错
    #属性的私有，导致不能直接通过a.xx的方式修改属性
    #而必须通过方法
    print("周长是：",t.zhouzhang())
    t.changeA(4)
    print("周长是：", t.zhouzhang())
    print("面积是：",t.area())
    t.changeA(44)
    print("-----------修改后-------------")
    print("周长是：", t.zhouzhang())
    print("面积是：", t.area())